﻿#pragma once

#if defined(_MSC_VER)
    #define _CRT_SECURE_NO_WARNINGS
#endif

#include <stdio.h>
#include <iostream>
//using namespace std; // 命名空间声明，以后不建议这么干
extern float add_two_number(float a, float b); // 声明函数声明
extern float multiply_two_number(float a, float b); // 声明函数声明
extern const char* print_massage(const char* message); // 声明函数声明

class MyClass1
{
    float weight = 66.6f;   // 成员变量，默认是私有成员变量
public:    // 公有成员声明
    int x = 10;
    void print(int x) { // 公有成员函数
        std::cout << "MyClass::x = " << x << std::endl;
    }

    void print(float weight) { // 重载
        std::cout << "MyClass1::weight = " << weight << std::endl;
    }

    void print_name(const char* name) {
        std::cout << "printf massage is: " << name << std::endl;
    }
};

inline void log(const char* name) {
    std::cout << name << std::endl;
    //static 修饰的函数配合 #inclode 就可以实现在多个.cpp文件中包含本头文件而不发生link错误
    //上面的这种实现同inline关键字修饰函数：表示将实际的函数调用转换为函数体
    // 也就是说明一个工程文件函数定义只能有一个，但声明可以有多个
}


